package demo4; import javax.swing.*; import java.awt.*; import org.openswing.swing.client.*; import java.util.*; import org.openswing.swing.util.client.ClientSettings; import org.openswing.swing.internationalization.java.EnglishOnlyResourceFactory; import org.openswing.swing.form.model.client.VOModel; import org.openswing.swing.form.client.Form; import org.openswing.swing.form.client.FormController; import org.openswing.swing.util.java.Consts; import java.sql.*; import org.openswing.swing.message.receive.java.*; import org.openswing.swing.lookup.client.LookupController; import org.openswing.swing.lookup.client.LookupDataLocator; import org.openswing.swing.internationalization.java.Resources; import javax.swing.border.*; import javax.swing.text.MaskFormatter; import org.openswing.swing.lookup.client.LookupListener; import java.awt.event.*; /** * <p>Title: OpenSwing Framework</p> * <p>Description: Demo Application: detail frame containing several input controls.</p> * <p>Copyright: Copyright (C) 2006 Mauro Carniel</p> * <p> </p> * @author Mauro Carniel * @version 1.0 */ public class DetailFrame extends JFrame { JPanel buttonsPanel = new JPanel(); DateControl controlDate = new DateControl(); GridBagLayout gridBagLayout1 = new GridBagLayout(); CheckBoxControl controlCheck = new CheckBoxControl(); LabelControl labelDate = new LabelControl(); ComboBoxControl controlComboBox = new ComboBoxControl(); LabelControl labelCombo = new LabelControl(); CurrencyControl controlCurrency = new CurrencyControl(); NumericControl controlNumeric = new NumericControl(); RadioButtonControl controlRadioButton1 = new RadioButtonControl(); TextControl controlText = new TextControl(); MultiLineLabelControl labelCheckBox = new MultiLineLabelControl(); LabelControl labelRadioButton = new LabelControl(); private Form mainPanel = new Form(); InsertButton insertButton = new InsertButton(); FlowLayout flowLayout1 = new FlowLayout(); EditButton editButton = new EditButton(); ReloadButton reloadButton = new ReloadButton(); SaveButton saveButton = new SaveButton(); DeleteButton deleteButton = new DeleteButton(); CodLookupControl controlLookup = new CodLookupControl(); TextControl descrLookupControl = new TextControl(); private Connection conn = null; CopyButton copyButton = new CopyButton(); TextAreaControl controlTA = new TextAreaControl(); TitledBorder titledBorder1; TitledBorder titledBorder2; ButtonGroup buttonGroup1 = new ButtonGroup(); RadioButtonControl controlRadioButton2 = new RadioButtonControl(); NavigatorBar navigatorBar = new NavigatorBar(); FormattedTextControl controlFormattedText = new FormattedTextControl(); CheckBoxListControl listControl1 = new CheckBoxListControl(); PasswordControl controlPasswd = new PasswordControl(); LinkButton linkButton1 = new LinkButton(); GenericButton buttonPressMe = new GenericButton(); LinkButton dynamicLinkButton = new LinkButton(); LabelControl labelLink = new LabelControl(); TextControl controlURI = new TextControl(); TextControl controlLinkLabel = new TextControl(); SpinnerListControl controlListSpinner = new SpinnerListControl(); SpinnerNumberControl controlNumSpinner = new SpinnerNumberControl(); FileControl controlFile = new FileControl(); public DetailFrame(Connection conn,DetailFrameController dataController) { try { this.conn = conn; jbInit(); mainPanel.setFormController(dataController); // link the parent grid to the current Form... HashSet pk = new HashSet(); pk.add("stringValue"); // pk for Form is based on one only attribute... mainPanel.linkGrid(dataController.getGridFrame().getGrid(),pk,true,true,true,navigatorBar); setSize(700,500); setVisible(true); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { titledBorder1 = new TitledBorder(""); titledBorder2 = new TitledBorder(""); mainPanel.setVOClassName("demo4.DetailTestVO"); mainPanel.setLayout(gridBagLayout1); labelCheckBox.setText("this text will\nbe translated"); labelDate.setText("date"); labelCombo.setTextAlignment(SwingConstants.RIGHT); labelCombo.setText("combobox"); controlComboBox.setCanCopy(true); controlComboBox.setDomainId("ORDERSTATE"); controlFormattedText.setAttributeName("formattedTextValue"); controlFormattedText.setToolTipText("formattedTextValue"); controlDate.setStrictUsage(true); MaskFormatter mask = new MaskFormatter("####/##.##.##"); // MaskFormatter mask = new MaskFormatter("###-##-####"); mask.setValidCharacters("0123456789"); // mask.setValueContainsLiteralCharacters(false); controlFormattedText.setFormatter(mask); controlComboBox.setLinkLabel(labelCombo); controlComboBox.setRequired(false); controlCurrency.setCanCopy(true); // controlCurrency.setCurrencySymbolOnLeft(false); controlCurrency.setDecimals(2); controlCurrency.setMaxValue(1000.0); controlCurrency.setMinValue(-1000.0); controlCurrency.setRequired(false); controlCurrency.setTextAlignment(SwingConstants.RIGHT); controlNumeric.setCanCopy(true); controlNumeric.setDecimals(3); controlNumeric.setMinValue(-100.0); controlNumeric.setRequired(true); controlNumeric.setMaxCharacters(6); controlNumeric.setTextAlignment(SwingConstants.RIGHT); labelRadioButton.setText("radio button"); controlText.setFont(new java.awt.Font(controlText.getFont().getName(), Font.BOLD, controlText.getFont().getSize())); //controlText.setMaxCharacters(7); controlText.setTrimText(true); controlText.setRpadding(true); controlText.setUpperCase(true); buttonsPanel.setLayout(flowLayout1); flowLayout1.setAlignment(FlowLayout.LEFT); mainPanel.setBorder(titledBorder1); mainPanel.setInsertButton(insertButton); mainPanel.setCopyButton(copyButton); mainPanel.setEditButton(editButton); mainPanel.setReloadButton(reloadButton); mainPanel.setDeleteButton(deleteButton); mainPanel.setSaveButton(saveButton); saveButton.setEnabled(false); controlLookup.setAttributeName("lookupValue"); controlLookup.setCanCopy(true); controlLookup.setMaxCharacters(5); controlLookup.setRequired(true); descrLookupControl.setAttributeName("descrLookupValue"); descrLookupControl.setCanCopy(true); descrLookupControl.setEnabledOnInsert(false); descrLookupControl.setEnabledOnEdit(false); controlDate.setCanCopy(true); controlDate.setRequired(false); copyButton.setText("copyButton1"); controlCheck.setCanCopy(true); controlRadioButton1.setCanCopy(true); controlRadioButton1.setText("Y"); controlTA.setAttributeName("taValue"); titledBorder1.setTitle("title"); titledBorder1.setTitleColor(Color.blue); controlRadioButton2.setText("N"); listControl1.setAttributeName("listValues"); listControl1.setDomainId("LISTVALUES"); // listControl1.setShowCheckBoxes(true); controlPasswd.setAttributeName("stringValue"); controlPasswd.setTextAlignment(SwingConstants.LEFT); linkButton1.addActionListener(new DetailFrame_linkButton1_actionAdapter(this)); linkButton1.setFont(new java.awt.Font("Dialog", 1, 11)); linkButton1.setLabel("OpenSwing Site"); linkButton1.setUri("http://oswing.sourgeforge.net"); linkButton1.setToolTipText("Click here to open OpenSwing Offical Site"); dynamicLinkButton.setFont(new java.awt.Font("Dialog", 1, 11)); dynamicLinkButton.setLabel("Dynamic Link"); dynamicLinkButton.setLabelAttributeName("linkLabel"); dynamicLinkButton.setUriAttributeName("uri"); dynamicLinkButton.setTooltipAttributeName("tooltipURI"); mainPanel.addLinkButton(dynamicLinkButton); controlListSpinner.setDomainId("ORDERSTATE"); buttonPressMe.setButtonBehavior(Consts.BUTTON_TEXT_ONLY); buttonPressMe.setAttributeName("stringValue"); labelLink.setText("uri"); controlURI.setAttributeName("uri"); controlLinkLabel.setAttributeName("linkLabel"); controlListSpinner.setAttributeName("combo"); controlNumSpinner.setAttributeName("year"); controlNumSpinner.setInitialValue(new Double(2010.0)); controlNumSpinner.setMaxValue(new Double(2015.0)); controlNumSpinner.setMinValue(new Double(2010.0)); controlFile.setAttributeName("file"); controlFile.setFileNameAttributeName("filename"); this.getContentPane().add(buttonsPanel, BorderLayout.NORTH); buttonsPanel.add(insertButton, null); buttonsPanel.add(copyButton, null); buttonsPanel.add(editButton, null); buttonsPanel.add(reloadButton, null); buttonsPanel.add(saveButton, null); buttonsPanel.add(deleteButton, null); buttonsPanel.add(navigatorBar, null); this.getContentPane().add(mainPanel, BorderLayout.CENTER); mainPanel.add(controlDate, new GridBagConstraints(1, 0, 5, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 120, 0)); mainPanel.add(labelCheckBox, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlCheck, new GridBagConstraints(1, 1, 2, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(labelDate, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlComboBox, new GridBagConstraints(1, 2, 2, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(labelCombo, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlCurrency, new GridBagConstraints(1, 3, 2, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 80, 0)); mainPanel.add(controlNumeric, new GridBagConstraints(1, 4, 2, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 80, 0)); mainPanel.add(labelRadioButton, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlRadioButton1, new GridBagConstraints(1, 5, 1, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 0, 0)); mainPanel.add(controlText, new GridBagConstraints(1, 6, 5, 1, 1.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 0, 5), 0, 0)); mainPanel.add(controlLookup, new GridBagConstraints(0, 8, 1, 1, 0.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 0), 0, 0)); mainPanel.add(descrLookupControl, new GridBagConstraints(1, 8, 5, 1, 1.0, 0.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 0, 5), 0, 0)); mainPanel.add(controlFormattedText, new GridBagConstraints(3, 4, 3, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 150, 0)); mainPanel.add(listControl1, new GridBagConstraints(3, 1, 3, 3, 1.0, 1.0 ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlPasswd, new GridBagConstraints(1, 7, 5, 1, 1.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(buttonPressMe, new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 0, 0), 0, 0)); mainPanel.add(labelLink, new GridBagConstraints(0, 11, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlLinkLabel, new GridBagConstraints(1, 11, 2, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(linkButton1, new GridBagConstraints(2, 10, 1, 1, 0.0, 0.0 ,GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(dynamicLinkButton, new GridBagConstraints(3, 10, 3, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlURI, new GridBagConstraints(3, 11, 3, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlTA, new GridBagConstraints(0, 9, 6, 1, 1.0, 1.0 ,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); mainPanel.add(controlRadioButton2, new GridBagConstraints(2, 5, 2, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); mainPanel.add(controlListSpinner, new GridBagConstraints(4, 5, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 0, 5, 0), 0, 0)); mainPanel.add(controlNumSpinner, new GridBagConstraints(5, 5, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); mainPanel.add(controlFile, new GridBagConstraints(0, 10, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); controlText.setAttributeName("stringValue"); controlText.setRequired(true); controlDate.setAttributeName("dateValue"); controlCheck.setAttributeName("checkValue"); controlRadioButton1.setAttributeName("radioButtonValue"); controlRadioButton2.setAttributeName("radioButtonValue"); controlCurrency.setAttributeName("currencyValue"); controlNumeric.setAttributeName("numericValue"); controlComboBox.setAttributeName("combo"); // controlDate.setDateType(Consts.TYPE_DATE_TIME); // controlDate.setTimeFormat(Resources.H_MM_AAA); Calendar cal = Calendar.getInstance(); cal.set(cal.MONTH,1); cal.set(cal.DAY_OF_MONTH,24); cal.set(cal.YEAR,1983); controlDate.setDefaultDate(cal); controlRadioButton1.setButtonGroup(buttonGroup1); controlRadioButton2.setButtonGroup(buttonGroup1); controlRadioButton1.setSelectedValue(Boolean.TRUE); controlRadioButton2.setSelectedValue(Boolean.FALSE); LookupController lookupController = new DemoLookupController(conn); //lookupController.setShowCustomErrorMessage(true); controlLookup.setLookupController(lookupController); lookupController.setOnInvalidCode(lookupController.ON_INVALID_CODE_RESTORE_LAST_VALID_CODE); // lookupController.setOnInvalidCode(lookupController.ON_INVALID_CODE_RESTORE_FOCUS); lookupController.addLookupListener(new LookupListener() { /** * beforeLookupAction * * @param parentVO ValueObject */ public void beforeLookupAction(ValueObject parentVO) { } /** * codeChanged * * @param parentVO ValueObject * @param parentChangedAttributes Collection */ public void codeChanged(ValueObject parentVO,Collection parentChangedAttributes) { DetailTestVO formVO = (DetailTestVO)parentVO; TestLookupVO lookupVO = (TestLookupVO)controlLookup.getLookupController().getLookupVO(); } /** * codeValidated * * @param validated boolean */ public void codeValidated(boolean validated) { } /** * forceValidate */ public void forceValidate() { } }); } public Form getMainPanel() { return mainPanel; } public SaveButton getSaveButton() { return saveButton; } public DeleteButton getDeleteButton() { return deleteButton; } public EditButton getEditButton() { return editButton; } void linkButton1_actionPerformed(ActionEvent e) { OptionPane.showMessageDialog(this,"Link pressed","Link Button",JOptionPane.INFORMATION_MESSAGE); } } class DetailFrame_linkButton1_actionAdapter implements java.awt.event.ActionListener { DetailFrame adaptee; DetailFrame_linkButton1_actionAdapter(DetailFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.linkButton1_actionPerformed(e); } }